package com.wcpdoc.survey.survey.service;

import java.util.List;
import java.util.Map;

import com.wcpdoc.survey.core.entity.Chart;
import com.wcpdoc.survey.core.entity.PageIn;
import com.wcpdoc.survey.core.entity.PageOut;
import com.wcpdoc.survey.core.service.BaseService;
import com.wcpdoc.survey.survey.entity.Paper;
import com.wcpdoc.survey.survey.entity.Survey;
import com.wcpdoc.survey.survey.entity.SurveyType;
/**
 * 调查服务层接口
 * 
 * v1.0 zhanghc 2017-06-11 09:13:23
 */
public interface SurveyService extends BaseService<Survey>{
	/**
	 * 获取调查分类树型列表
	 * 
	 * v1.0 zhanghc 2017年6月29日上午7:24:13
	 * @return List<Map<String,Object>>
	 */
	List<Map<String, Object>> getSurveyTypeTreeList();
	
	/**
	 * 获取问卷分类数据
	 * 
	 * v1.0 zhanghc 2017年6月11日下午5:54:09
	 * @return List<Map<String,Object>>
	 */
	List<Map<String, Object>> getPaperAddListTypeTreeList();
	
	/**
	 * 获取问卷分类数据
	 * 
	 * v1.0 zhanghc 2017年6月11日下午5:54:58
	 * @param pageIn
	 * @return PageOut
	 */
	PageOut getPaperAddListpage(PageIn pageIn);
	
	/**
	 * 添加调查
	 * 
	 * v1.0 zhanghc 2017-06-11 09:13:23
	 * @param survey
	 * void
	 */
	void saveAndUpdate(Survey survey);
	
	/**
	 * 获取问卷
	 * 
	 * v1.0 zhanghc 2017年6月12日下午11:07:40
	 * @param paperId
	 * @return Paper
	 */
	Paper getPaper(Integer paperId);
	
	/**
	 * 获取调查分类
	 * 
	 * v1.0 zhanghc 2017年6月12日下午11:07:40
	 * @param paperId
	 * @return Paper
	 */
	SurveyType getSurveyType(Integer id);
	
	/**
	 * 修改调查
	 * 
	 * v1.0 zhanghc 2017年8月14日下午2:08:37
	 * @param survey
	 * void
	 */
	void updateAndUpdate(Survey survey);
	
	/**
	 * 删除调查
	 * 
	 * v1.0 zhanghc 2017年8月6日下午11:09:53
	 * @param ids
	 * void
	 */
	void deleteAndUpdate(Integer[] ids);
	
	/**
	 * 完成发布
	 * 
	 * v1.0 zhanghc 2017年10月26日下午6:34:13
	 * @param ids
	 * void
	 */
	void doPublish(Integer[] ids);

	/**
	 * 获取调查列表
	 * 
	 * v1.0 zhanghc 2017年10月28日上午9:25:47
	 * @param id
	 * @return List<Survey>
	 */
	List<Survey> getList(Integer id);

	/**
	 * 完成设置问卷分类
	 * 
	 * v1.0 zhanghc 2017年10月28日上午9:25:47
	 * @param ids 问题ID
	 * @param paperTypeId 问题分类ID
	 * @return PageResult
	 */
	void doSurveyTypeUpdate(Integer[] ids, Integer surveyTypeId);

	/**
	 * 获取图表
	 * 
	 * v1.0 zhanghc 2017年10月29日上午11:27:43
	 * @param surveyId
	 * @param questionId
	 * @return Chart
	 */
	Chart getChart(Integer surveyId, Integer questionId);
}
